var jwt = require('jsonwebtoken');
var jwtScrect = 'zgs_first_token';  //签名

//登录接口 生成token的方法
var setToken = function (data) {
    return new Promise((resolve, reject) => {
        //expiresln 设置token过期的时间
        //传入需要解析的值
        let token = null;
        // 更新token持续时间
        if (data.exp || data.iat) {
            data.exp = Math.floor(new Date().getTime() / 1000) + 3600*24*7;
            data.iat = Math.floor(new Date().getTime() / 1000) + 3600*24*7;
            token = jwt.sign({ ...data }, jwtScrect,);
        } else {
            token = jwt.sign({ ...data }, jwtScrect, { expiresIn: 3600 * 24 * 7 });
        }
        resolve(token)
    })
}
//各个接口需要验证token的方法
var getToken = function (token) {
    return new Promise((resolve, reject) => {
        if (!token) {
            console.log('token是空的')
            reject({
                error: 'token 是空的'
            })
        }
        else {
            var info = jwt.verify(token.split(' ')[1], jwtScrect);
            resolve(info);  //解析返回的值（sign 传入的值）
        }
    })
}

module.exports = {
    tokenScrect: jwtScrect,
    setToken,
    getToken
}